<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::Subdiv2D Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html">Subdiv2D</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> |
<a href="#pub-types">Public Types</a> |
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pro-methods">Protected Member Functions</a> |
<a href="#pro-attribs">Protected Attributes</a> |
<a href="../../d0/d22/classcv_1_1Subdiv2D-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::Subdiv2D Class Reference<div class="ingroups"><a class="el" href="../../d7/dbd/group__imgproc.html">Image Processing</a> » <a class="el" href="../../df/d5b/group__imgproc__subdiv2d.html">Planar Subdivision</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p><code>#include &lt;opencv2/imgproc.hpp&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d4/dbc/structcv_1_1Subdiv2D_1_1QuadEdge.html">QuadEdge</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/de9/structcv_1_1Subdiv2D_1_1Vertex.html">Vertex</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:aa35f844eeaa2817613fe40d436bc59e4"><td align="right" class="memItemLeft" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4a250bb6debdc855cc6bc204454f516d3b">PTLOC_ERROR</a> = -2, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4a79867dca35f0d88ad21969460b533ae1">PTLOC_OUTSIDE_RECT</a> = -1, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4ae417a0101ccdd133278862bc7e6dcea0">PTLOC_INSIDE</a> = 0, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4ac78fcef37382840c75b46eb06af11350">PTLOC_VERTEX</a> = 1, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4adce5c8dff4cd9e6c2e0060dbc9a6f3b6">PTLOC_ON_EDGE</a> = 2
<br/>
 }</td></tr>
<tr class="separator:aa35f844eeaa2817613fe40d436bc59e4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a996e90085e59f1d1fa8d823e20e9ddf7"><td align="right" class="memItemLeft" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a996e90085e59f1d1fa8d823e20e9ddf7a1d308c0e060caef6de00b11b47deb9a3">NEXT_AROUND_ORG</a> = 0x00, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a996e90085e59f1d1fa8d823e20e9ddf7a31ae7ad167e8746aeffdcac86b1a5c23">NEXT_AROUND_DST</a> = 0x22, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a996e90085e59f1d1fa8d823e20e9ddf7a8170778bb0286aa463cae5232446008f">PREV_AROUND_ORG</a> = 0x11, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a996e90085e59f1d1fa8d823e20e9ddf7a2256b56cf701d279a673dca2de0f1f96">PREV_AROUND_DST</a> = 0x33, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a996e90085e59f1d1fa8d823e20e9ddf7a0eab55483704d776e469c752413fe520">NEXT_AROUND_LEFT</a> = 0x13, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a996e90085e59f1d1fa8d823e20e9ddf7a74879efdc668e34b819e068a4f608d6d">NEXT_AROUND_RIGHT</a> = 0x31, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a996e90085e59f1d1fa8d823e20e9ddf7acd1befba98e8c2956602923ac2e32f8f">PREV_AROUND_LEFT</a> = 0x20, 
<br/>
  <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a996e90085e59f1d1fa8d823e20e9ddf7ae1d0ccf41e7cc6eadb9a26925fc25b18">PREV_AROUND_RIGHT</a> = 0x02
<br/>
 }</td></tr>
<tr class="separator:a996e90085e59f1d1fa8d823e20e9ddf7"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aed58be264a17cdbe712b6a35036d13cb"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aed58be264a17cdbe712b6a35036d13cb">Subdiv2D</a> ()</td></tr>
<tr class="separator:aed58be264a17cdbe712b6a35036d13cb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa9ae8faa2f7a78428b115407bfc3df9e"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa9ae8faa2f7a78428b115407bfc3df9e">Subdiv2D</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> rect)</td></tr>
<tr class="separator:aa9ae8faa2f7a78428b115407bfc3df9e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aee192f95bf19c74619641496c457586d"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aee192f95bf19c74619641496c457586d">edgeDst</a> (int edge, <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> *dstpt=0) const</td></tr>
<tr class="memdesc:aee192f95bf19c74619641496c457586d"><td class="mdescLeft"> </td><td class="mdescRight">Returns the edge destination.  <a href="#aee192f95bf19c74619641496c457586d">More...</a><br/></td></tr>
<tr class="separator:aee192f95bf19c74619641496c457586d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5563e3cae0a9b95df63e72f0c12f9389"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a5563e3cae0a9b95df63e72f0c12f9389">edgeOrg</a> (int edge, <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> *orgpt=0) const</td></tr>
<tr class="memdesc:a5563e3cae0a9b95df63e72f0c12f9389"><td class="mdescLeft"> </td><td class="mdescRight">Returns the edge origin.  <a href="#a5563e3cae0a9b95df63e72f0c12f9389">More...</a><br/></td></tr>
<tr class="separator:a5563e3cae0a9b95df63e72f0c12f9389"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3ec256af000e129e08eb5f269ccdeb0f"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a3ec256af000e129e08eb5f269ccdeb0f">findNearest</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> pt, <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> *nearestPt=0)</td></tr>
<tr class="memdesc:a3ec256af000e129e08eb5f269ccdeb0f"><td class="mdescLeft"> </td><td class="mdescRight">Finds the subdivision vertex closest to the given point.  <a href="#a3ec256af000e129e08eb5f269ccdeb0f">More...</a><br/></td></tr>
<tr class="separator:a3ec256af000e129e08eb5f269ccdeb0f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:af73f08576709bad7a36f8f8e5fc43c84"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#af73f08576709bad7a36f8f8e5fc43c84">getEdge</a> (int edge, int nextEdgeType) const</td></tr>
<tr class="memdesc:af73f08576709bad7a36f8f8e5fc43c84"><td class="mdescLeft"> </td><td class="mdescRight">Returns one of the edges related to the given edge.  <a href="#af73f08576709bad7a36f8f8e5fc43c84">More...</a><br/></td></tr>
<tr class="separator:af73f08576709bad7a36f8f8e5fc43c84"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab527c11e9938eed53cf9c790afa9416d"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#ab527c11e9938eed53cf9c790afa9416d">getEdgeList</a> (std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga4f29b2178d21a471ee688b14d66d6567">Vec4f</a> &gt; &amp;edgeList) const</td></tr>
<tr class="memdesc:ab527c11e9938eed53cf9c790afa9416d"><td class="mdescLeft"> </td><td class="mdescRight">Returns a list of all edges.  <a href="#ab527c11e9938eed53cf9c790afa9416d">More...</a><br/></td></tr>
<tr class="separator:ab527c11e9938eed53cf9c790afa9416d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2d02a1d66ef7f8f267beb549cb2823f1"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a2d02a1d66ef7f8f267beb549cb2823f1">getLeadingEdgeList</a> (std::vector&lt; int &gt; &amp;leadingEdgeList) const</td></tr>
<tr class="memdesc:a2d02a1d66ef7f8f267beb549cb2823f1"><td class="mdescLeft"> </td><td class="mdescRight">Returns a list of the leading edge ID connected to each triangle.  <a href="#a2d02a1d66ef7f8f267beb549cb2823f1">More...</a><br/></td></tr>
<tr class="separator:a2d02a1d66ef7f8f267beb549cb2823f1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a26bfe32209bc8ae9ecc53e93da01e466"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a26bfe32209bc8ae9ecc53e93da01e466">getTriangleList</a> (std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga74b819dd94c6a8c6f3d8cc39aeaa4992">Vec6f</a> &gt; &amp;triangleList) const</td></tr>
<tr class="memdesc:a26bfe32209bc8ae9ecc53e93da01e466"><td class="mdescLeft"> </td><td class="mdescRight">Returns a list of all triangles.  <a href="#a26bfe32209bc8ae9ecc53e93da01e466">More...</a><br/></td></tr>
<tr class="separator:a26bfe32209bc8ae9ecc53e93da01e466"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5297daca30f90d1e6d0cc5a75ba76351"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a5297daca30f90d1e6d0cc5a75ba76351">getVertex</a> (int vertex, int *firstEdge=0) const</td></tr>
<tr class="memdesc:a5297daca30f90d1e6d0cc5a75ba76351"><td class="mdescLeft"> </td><td class="mdescRight">Returns vertex location from vertex ID.  <a href="#a5297daca30f90d1e6d0cc5a75ba76351">More...</a><br/></td></tr>
<tr class="separator:a5297daca30f90d1e6d0cc5a75ba76351"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3a9e080423475be056a79da4c04741ea"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a3a9e080423475be056a79da4c04741ea">getVoronoiFacetList</a> (const std::vector&lt; int &gt; &amp;idx, std::vector&lt; std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> &gt; &gt; &amp;facetList, std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> &gt; &amp;facetCenters)</td></tr>
<tr class="memdesc:a3a9e080423475be056a79da4c04741ea"><td class="mdescLeft"> </td><td class="mdescRight">Returns a list of all Voronoi facets.  <a href="#a3a9e080423475be056a79da4c04741ea">More...</a><br/></td></tr>
<tr class="separator:a3a9e080423475be056a79da4c04741ea"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae4a3d65e798c46fd6ce64370f24b0287"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#ae4a3d65e798c46fd6ce64370f24b0287">initDelaunay</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> rect)</td></tr>
<tr class="memdesc:ae4a3d65e798c46fd6ce64370f24b0287"><td class="mdescLeft"> </td><td class="mdescRight">Creates a new empty Delaunay subdivision.  <a href="#ae4a3d65e798c46fd6ce64370f24b0287">More...</a><br/></td></tr>
<tr class="separator:ae4a3d65e798c46fd6ce64370f24b0287"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a18a6c9999210d769538297d843c613f2"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a18a6c9999210d769538297d843c613f2">insert</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> pt)</td></tr>
<tr class="memdesc:a18a6c9999210d769538297d843c613f2"><td class="mdescLeft"> </td><td class="mdescRight">Insert a single point into a Delaunay triangulation.  <a href="#a18a6c9999210d769538297d843c613f2">More...</a><br/></td></tr>
<tr class="separator:a18a6c9999210d769538297d843c613f2"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a37223a499032ef57364f1372ad0c9c2e"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a37223a499032ef57364f1372ad0c9c2e">insert</a> (const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> &gt; &amp;ptvec)</td></tr>
<tr class="memdesc:a37223a499032ef57364f1372ad0c9c2e"><td class="mdescLeft"> </td><td class="mdescRight">Insert multiple points into a Delaunay triangulation.  <a href="#a37223a499032ef57364f1372ad0c9c2e">More...</a><br/></td></tr>
<tr class="separator:a37223a499032ef57364f1372ad0c9c2e"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aec8f1fd5a802f62faa97520b465897d7"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aec8f1fd5a802f62faa97520b465897d7">locate</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> pt, int &amp;edge, int &amp;vertex)</td></tr>
<tr class="memdesc:aec8f1fd5a802f62faa97520b465897d7"><td class="mdescLeft"> </td><td class="mdescRight">Returns the location of a point within a Delaunay triangulation.  <a href="#aec8f1fd5a802f62faa97520b465897d7">More...</a><br/></td></tr>
<tr class="separator:aec8f1fd5a802f62faa97520b465897d7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a36ebf478e2546615c2db457106393acb"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a36ebf478e2546615c2db457106393acb">nextEdge</a> (int edge) const</td></tr>
<tr class="memdesc:a36ebf478e2546615c2db457106393acb"><td class="mdescLeft"> </td><td class="mdescRight">Returns next edge around the edge origin.  <a href="#a36ebf478e2546615c2db457106393acb">More...</a><br/></td></tr>
<tr class="separator:a36ebf478e2546615c2db457106393acb"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa1179507f651b67c22e06517fbc6a145"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa1179507f651b67c22e06517fbc6a145">rotateEdge</a> (int edge, int <a class="el" href="../../d2/de8/group__core__array.html#ga4ad01c0978b0ce64baa246811deeac24">rotate</a>) const</td></tr>
<tr class="memdesc:aa1179507f651b67c22e06517fbc6a145"><td class="mdescLeft"> </td><td class="mdescRight">Returns another edge of the same quad-edge.  <a href="#aa1179507f651b67c22e06517fbc6a145">More...</a><br/></td></tr>
<tr class="separator:aa1179507f651b67c22e06517fbc6a145"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aabbb10b8d5b0311b7e22040fc0db56b4"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aabbb10b8d5b0311b7e22040fc0db56b4">symEdge</a> (int edge) const</td></tr>
<tr class="separator:aabbb10b8d5b0311b7e22040fc0db56b4"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a08dc6b05f6fae0314aba9c2e197371ce"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a08dc6b05f6fae0314aba9c2e197371ce">calcVoronoi</a> ()</td></tr>
<tr class="separator:a08dc6b05f6fae0314aba9c2e197371ce"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2be088a8a411fc4dd232f18f7f88e736"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a2be088a8a411fc4dd232f18f7f88e736">checkSubdiv</a> () const</td></tr>
<tr class="separator:a2be088a8a411fc4dd232f18f7f88e736"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ae3a27a930a710466051547b80dd64ef1"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#ae3a27a930a710466051547b80dd64ef1">clearVoronoi</a> ()</td></tr>
<tr class="separator:ae3a27a930a710466051547b80dd64ef1"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3490a3d952aa7ef951a3bdb9bce3688c"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a3490a3d952aa7ef951a3bdb9bce3688c">connectEdges</a> (int edgeA, int edgeB)</td></tr>
<tr class="separator:a3490a3d952aa7ef951a3bdb9bce3688c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aab7fdb247262a8ffb638e745c9faed06"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aab7fdb247262a8ffb638e745c9faed06">deleteEdge</a> (int edge)</td></tr>
<tr class="separator:aab7fdb247262a8ffb638e745c9faed06"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a78dfd541b7d8eb856b360189ac1a3912"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a78dfd541b7d8eb856b360189ac1a3912">deletePoint</a> (int <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aebc53cc84655eb0eb8420e26457c6b34">vtx</a>)</td></tr>
<tr class="separator:a78dfd541b7d8eb856b360189ac1a3912"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a3330f72eb0ace8a8b6faa43c3f606fdd"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a3330f72eb0ace8a8b6faa43c3f606fdd">isRightOf</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> pt, int edge) const</td></tr>
<tr class="separator:a3330f72eb0ace8a8b6faa43c3f606fdd"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2ccf33004b2db5407e238d2077d725be"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a2ccf33004b2db5407e238d2077d725be">newEdge</a> ()</td></tr>
<tr class="separator:a2ccf33004b2db5407e238d2077d725be"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac88046997ef2bf96d72fafa3633bc0ca"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#ac88046997ef2bf96d72fafa3633bc0ca">newPoint</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> pt, bool isvirtual, int firstEdge=0)</td></tr>
<tr class="separator:ac88046997ef2bf96d72fafa3633bc0ca"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:adc6ca8745fd0d7a28a38c31deb0b1342"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#adc6ca8745fd0d7a28a38c31deb0b1342">setEdgePoints</a> (int edge, int orgPt, int dstPt)</td></tr>
<tr class="separator:adc6ca8745fd0d7a28a38c31deb0b1342"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2fe50f31cf743a71040ad740b7d1609c"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a2fe50f31cf743a71040ad740b7d1609c">splice</a> (int edgeA, int edgeB)</td></tr>
<tr class="separator:a2fe50f31cf743a71040ad740b7d1609c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a1e1fb5d4dceadb03ac61c678cf1afb7f"><td align="right" class="memItemLeft" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a1e1fb5d4dceadb03ac61c678cf1afb7f">swapEdges</a> (int edge)</td></tr>
<tr class="separator:a1e1fb5d4dceadb03ac61c678cf1afb7f"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:ab3c3970a65dfa0b4e020e101a9fdae7f"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#ab3c3970a65dfa0b4e020e101a9fdae7f">bottomRight</a></td></tr>
<tr class="memdesc:ab3c3970a65dfa0b4e020e101a9fdae7f"><td class="mdescLeft"> </td><td class="mdescRight">Bottom right corner of the bounding rect.  <a href="#ab3c3970a65dfa0b4e020e101a9fdae7f">More...</a><br/></td></tr>
<tr class="separator:ab3c3970a65dfa0b4e020e101a9fdae7f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a961a50c070ec1db71efcadb6a9a95cff"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a961a50c070ec1db71efcadb6a9a95cff">freePoint</a></td></tr>
<tr class="separator:a961a50c070ec1db71efcadb6a9a95cff"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6253d11fc0bcd400221d1735f8c1d283"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a6253d11fc0bcd400221d1735f8c1d283">freeQEdge</a></td></tr>
<tr class="separator:a6253d11fc0bcd400221d1735f8c1d283"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ad3f646a7263fc902b6ed9ec15c9b3b51"><td align="right" class="memItemLeft" valign="top">std::vector&lt; <a class="el" href="../../d4/dbc/structcv_1_1Subdiv2D_1_1QuadEdge.html">QuadEdge</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#ad3f646a7263fc902b6ed9ec15c9b3b51">qedges</a></td></tr>
<tr class="memdesc:ad3f646a7263fc902b6ed9ec15c9b3b51"><td class="mdescLeft"> </td><td class="mdescRight">All of the edges.  <a href="#ad3f646a7263fc902b6ed9ec15c9b3b51">More...</a><br/></td></tr>
<tr class="separator:ad3f646a7263fc902b6ed9ec15c9b3b51"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a80cd8452cf0a0eb8fab9a6875a1bbd0f"><td align="right" class="memItemLeft" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a80cd8452cf0a0eb8fab9a6875a1bbd0f">recentEdge</a></td></tr>
<tr class="separator:a80cd8452cf0a0eb8fab9a6875a1bbd0f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a324326659a263ceaa22b1c4f712ef820"><td align="right" class="memItemLeft" valign="top"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a324326659a263ceaa22b1c4f712ef820">topLeft</a></td></tr>
<tr class="memdesc:a324326659a263ceaa22b1c4f712ef820"><td class="mdescLeft"> </td><td class="mdescRight">Top left corner of the bounding rect.  <a href="#a324326659a263ceaa22b1c4f712ef820">More...</a><br/></td></tr>
<tr class="separator:a324326659a263ceaa22b1c4f712ef820"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a98184e52f16c9b6ab80102bf29e910ec"><td align="right" class="memItemLeft" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a98184e52f16c9b6ab80102bf29e910ec">validGeometry</a></td></tr>
<tr class="separator:a98184e52f16c9b6ab80102bf29e910ec"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aebc53cc84655eb0eb8420e26457c6b34"><td align="right" class="memItemLeft" valign="top">std::vector&lt; <a class="el" href="../../d7/de9/structcv_1_1Subdiv2D_1_1Vertex.html">Vertex</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aebc53cc84655eb0eb8420e26457c6b34">vtx</a></td></tr>
<tr class="memdesc:aebc53cc84655eb0eb8420e26457c6b34"><td class="mdescLeft"> </td><td class="mdescRight">All of the vertices.  <a href="#aebc53cc84655eb0eb8420e26457c6b34">More...</a><br/></td></tr>
<tr class="separator:aebc53cc84655eb0eb8420e26457c6b34"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="aa35f844eeaa2817613fe40d436bc59e4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa35f844eeaa2817613fe40d436bc59e4">◆ </a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html">Subdiv2D</a> point location cases </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="aa35f844eeaa2817613fe40d436bc59e4a250bb6debdc855cc6bc204454f516d3b"></a>PTLOC_ERROR </td><td class="fielddoc"><p>Point location error. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa35f844eeaa2817613fe40d436bc59e4a79867dca35f0d88ad21969460b533ae1"></a>PTLOC_OUTSIDE_RECT </td><td class="fielddoc"><p>Point outside the subdivision bounding rect. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa35f844eeaa2817613fe40d436bc59e4ae417a0101ccdd133278862bc7e6dcea0"></a>PTLOC_INSIDE </td><td class="fielddoc"><p>Point inside some facet. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa35f844eeaa2817613fe40d436bc59e4ac78fcef37382840c75b46eb06af11350"></a>PTLOC_VERTEX </td><td class="fielddoc"><p>Point coincides with one of the subdivision vertices. </p>
</td></tr>
<tr><td class="fieldname"><a id="aa35f844eeaa2817613fe40d436bc59e4adce5c8dff4cd9e6c2e0060dbc9a6f3b6"></a>PTLOC_ON_EDGE </td><td class="fielddoc"><p>Point on some edge. </p>
</td></tr>
</table>
</div>
</div>
<a id="a996e90085e59f1d1fa8d823e20e9ddf7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a996e90085e59f1d1fa8d823e20e9ddf7">◆ </a></span>anonymous enum</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum</td>
        </tr>
      </table>
</div><div class="memdoc">
<p><a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html">Subdiv2D</a> edge type navigation (see: <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#af73f08576709bad7a36f8f8e5fc43c84" title="Returns one of the edges related to the given edge. ">getEdge()</a>) </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a996e90085e59f1d1fa8d823e20e9ddf7a1d308c0e060caef6de00b11b47deb9a3"></a>NEXT_AROUND_ORG </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a996e90085e59f1d1fa8d823e20e9ddf7a31ae7ad167e8746aeffdcac86b1a5c23"></a>NEXT_AROUND_DST </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a996e90085e59f1d1fa8d823e20e9ddf7a8170778bb0286aa463cae5232446008f"></a>PREV_AROUND_ORG </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a996e90085e59f1d1fa8d823e20e9ddf7a2256b56cf701d279a673dca2de0f1f96"></a>PREV_AROUND_DST </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a996e90085e59f1d1fa8d823e20e9ddf7a0eab55483704d776e469c752413fe520"></a>NEXT_AROUND_LEFT </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a996e90085e59f1d1fa8d823e20e9ddf7a74879efdc668e34b819e068a4f608d6d"></a>NEXT_AROUND_RIGHT </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a996e90085e59f1d1fa8d823e20e9ddf7acd1befba98e8c2956602923ac2e32f8f"></a>PREV_AROUND_LEFT </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a996e90085e59f1d1fa8d823e20e9ddf7ae1d0ccf41e7cc6eadb9a26925fc25b18"></a>PREV_AROUND_RIGHT </td><td class="fielddoc"></td></tr>
</table>
</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aed58be264a17cdbe712b6a35036d13cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aed58be264a17cdbe712b6a35036d13cb">◆ </a></span>Subdiv2D() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Subdiv2D::Subdiv2D </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;Subdiv2D object&gt;</td><td>=</td><td>cv.Subdiv2D(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;Subdiv2D object&gt;</td><td>=</td><td>cv.Subdiv2D(</td><td class="paramname">rect</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>creates an empty <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html">Subdiv2D</a> object. To create a new empty Delaunay subdivision you need to use the <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#ae4a3d65e798c46fd6ce64370f24b0287" title="Creates a new empty Delaunay subdivision. ">initDelaunay</a> function. </p>
</div>
</div>
<a id="aa9ae8faa2f7a78428b115407bfc3df9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa9ae8faa2f7a78428b115407bfc3df9e">◆ </a></span>Subdiv2D() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">cv::Subdiv2D::Subdiv2D </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> </td>
          <td class="paramname"><em>rect</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>&lt;Subdiv2D object&gt;</td><td>=</td><td>cv.Subdiv2D(</td><td class="paramname"></td><td>)</td></tr><tr><td style="width: 20px;"></td><td>&lt;Subdiv2D object&gt;</td><td>=</td><td>cv.Subdiv2D(</td><td class="paramname">rect</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rect</td><td>Rectangle that includes all of the 2D points that are to be added to the subdivision.</td></tr>
  </table>
  </dd>
</dl>
<p>The function creates an empty Delaunay subdivision where 2D points can be added using the function <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#a18a6c9999210d769538297d843c613f2" title="Insert a single point into a Delaunay triangulation. ">insert()</a> . All of the points to be added must be within the specified rectangle, otherwise a runtime error is raised. </p>
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a08dc6b05f6fae0314aba9c2e197371ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08dc6b05f6fae0314aba9c2e197371ce">◆ </a></span>calcVoronoi()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::calcVoronoi </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2be088a8a411fc4dd232f18f7f88e736"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2be088a8a411fc4dd232f18f7f88e736">◆ </a></span>checkSubdiv()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::checkSubdiv </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ae3a27a930a710466051547b80dd64ef1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae3a27a930a710466051547b80dd64ef1">◆ </a></span>clearVoronoi()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::clearVoronoi </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a3490a3d952aa7ef951a3bdb9bce3688c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3490a3d952aa7ef951a3bdb9bce3688c">◆ </a></span>connectEdges()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::connectEdges </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edgeA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edgeB</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aab7fdb247262a8ffb638e745c9faed06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aab7fdb247262a8ffb638e745c9faed06">◆ </a></span>deleteEdge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::deleteEdge </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a78dfd541b7d8eb856b360189ac1a3912"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78dfd541b7d8eb856b360189ac1a3912">◆ </a></span>deletePoint()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::deletePoint </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>vtx</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aee192f95bf19c74619641496c457586d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee192f95bf19c74619641496c457586d">◆ </a></span>edgeDst()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::edgeDst </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> * </td>
          <td class="paramname"><em>dstpt</em> = <code>0</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval, dstpt</td><td>=</td><td>cv.Subdiv2D.edgeDst(</td><td class="paramname">edge</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns the edge destination. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">edge</td><td>Subdivision edge ID. </td></tr>
    <tr><td class="paramname">dstpt</td><td>Output vertex location.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vertex ID. </dd></dl>
</div>
</div>
<a id="a5563e3cae0a9b95df63e72f0c12f9389"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5563e3cae0a9b95df63e72f0c12f9389">◆ </a></span>edgeOrg()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::edgeOrg </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> * </td>
          <td class="paramname"><em>orgpt</em> = <code>0</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval, orgpt</td><td>=</td><td>cv.Subdiv2D.edgeOrg(</td><td class="paramname">edge</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns the edge origin. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">edge</td><td>Subdivision edge ID. </td></tr>
    <tr><td class="paramname">orgpt</td><td>Output vertex location.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vertex ID. </dd></dl>
</div>
</div>
<a id="a3ec256af000e129e08eb5f269ccdeb0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ec256af000e129e08eb5f269ccdeb0f">◆ </a></span>findNearest()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::findNearest </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> </td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> * </td>
          <td class="paramname"><em>nearestPt</em> = <code>0</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval, nearestPt</td><td>=</td><td>cv.Subdiv2D.findNearest(</td><td class="paramname">pt</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Finds the subdivision vertex closest to the given point. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>Input point. </td></tr>
    <tr><td class="paramname">nearestPt</td><td>Output subdivision vertex point.</td></tr>
  </table>
  </dd>
</dl>
<p>The function is another function that locates the input point within the subdivision. It finds the subdivision vertex that is the closest to the input point. It is not necessarily one of vertices of the facet containing the input point, though the facet (located using <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aec8f1fd5a802f62faa97520b465897d7" title="Returns the location of a point within a Delaunay triangulation. ">locate()</a> ) is used as a starting point.</p>
<dl class="section return"><dt>Returns</dt><dd>vertex ID. </dd></dl>
</div>
</div>
<a id="af73f08576709bad7a36f8f8e5fc43c84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af73f08576709bad7a36f8f8e5fc43c84">◆ </a></span>getEdge()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::getEdge </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>nextEdgeType</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.Subdiv2D.getEdge(</td><td class="paramname">edge, nextEdgeType</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns one of the edges related to the given edge. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">edge</td><td>Subdivision edge ID. </td></tr>
    <tr><td class="paramname">nextEdgeType</td><td>Parameter specifying which of the related edges to return. The following values are possible:<ul>
<li>NEXT_AROUND_ORG next around the edge origin ( eOnext on the picture below if e is the input edge)</li>
<li>NEXT_AROUND_DST next around the edge vertex ( eDnext )</li>
<li>PREV_AROUND_ORG previous around the edge origin (reversed eRnext )</li>
<li>PREV_AROUND_DST previous around the edge destination (reversed eLnext )</li>
<li>NEXT_AROUND_LEFT next around the left facet ( eLnext )</li>
<li>NEXT_AROUND_RIGHT next around the right facet ( eRnext )</li>
<li>PREV_AROUND_LEFT previous around the left facet (reversed eOnext )</li>
<li>PREV_AROUND_RIGHT previous around the right facet (reversed eDnext )</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<div class="image">
<img alt="quadedge.png" src="../../quadedge.png"/>
<div class="caption">
sample output</div></div>
 <dl class="section return"><dt>Returns</dt><dd>edge ID related to the input edge. </dd></dl>
</div>
</div>
<a id="ab527c11e9938eed53cf9c790afa9416d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab527c11e9938eed53cf9c790afa9416d">◆ </a></span>getEdgeList()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::getEdgeList </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga4f29b2178d21a471ee688b14d66d6567">Vec4f</a> &gt; &amp; </td>
          <td class="paramname"><em>edgeList</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>edgeList</td><td>=</td><td>cv.Subdiv2D.getEdgeList(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns a list of all edges. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">edgeList</td><td>Output vector.</td></tr>
  </table>
  </dd>
</dl>
<p>The function gives each edge as a 4 numbers vector, where each two are one of the edge vertices. i.e. org_x = v[0], org_y = v[1], dst_x = v[2], dst_y = v[3]. </p>
</div>
</div>
<a id="a2d02a1d66ef7f8f267beb549cb2823f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d02a1d66ef7f8f267beb549cb2823f1">◆ </a></span>getLeadingEdgeList()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::getLeadingEdgeList </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; int &gt; &amp; </td>
          <td class="paramname"><em>leadingEdgeList</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>leadingEdgeList</td><td>=</td><td>cv.Subdiv2D.getLeadingEdgeList(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns a list of the leading edge ID connected to each triangle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">leadingEdgeList</td><td>Output vector.</td></tr>
  </table>
  </dd>
</dl>
<p>The function gives one edge ID for each triangle. </p>
</div>
</div>
<a id="a26bfe32209bc8ae9ecc53e93da01e466"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26bfe32209bc8ae9ecc53e93da01e466">◆ </a></span>getTriangleList()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::getTriangleList </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga74b819dd94c6a8c6f3d8cc39aeaa4992">Vec6f</a> &gt; &amp; </td>
          <td class="paramname"><em>triangleList</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>triangleList</td><td>=</td><td>cv.Subdiv2D.getTriangleList(</td><td class="paramname"></td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns a list of all triangles. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">triangleList</td><td>Output vector.</td></tr>
  </table>
  </dd>
</dl>
<p>The function gives each triangle as a 6 numbers vector, where each two are one of the triangle vertices. i.e. p1_x = v[0], p1_y = v[1], p2_x = v[2], p2_y = v[3], p3_x = v[4], p3_y = v[5]. </p>
</div>
</div>
<a id="a5297daca30f90d1e6d0cc5a75ba76351"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5297daca30f90d1e6d0cc5a75ba76351">◆ </a></span>getVertex()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> cv::Subdiv2D::getVertex </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>vertex</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int * </td>
          <td class="paramname"><em>firstEdge</em> = <code>0</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval, firstEdge</td><td>=</td><td>cv.Subdiv2D.getVertex(</td><td class="paramname">vertex</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns vertex location from vertex ID. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">vertex</td><td>vertex ID. </td></tr>
    <tr><td class="paramname">firstEdge</td><td>Optional. The first edge ID which is connected to the vertex. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vertex (x,y) </dd></dl>
</div>
</div>
<a id="a3a9e080423475be056a79da4c04741ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a9e080423475be056a79da4c04741ea">◆ </a></span>getVoronoiFacetList()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::getVoronoiFacetList </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; int &gt; &amp; </td>
          <td class="paramname"><em>idx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> &gt; &gt; &amp; </td>
          <td class="paramname"><em>facetList</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> &gt; &amp; </td>
          <td class="paramname"><em>facetCenters</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>facetList, facetCenters</td><td>=</td><td>cv.Subdiv2D.getVoronoiFacetList(</td><td class="paramname">idx</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns a list of all Voronoi facets. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">idx</td><td>Vector of vertices IDs to consider. For all vertices you can pass empty vector. </td></tr>
    <tr><td class="paramname">facetList</td><td>Output vector of the Voronoi facets. </td></tr>
    <tr><td class="paramname">facetCenters</td><td>Output vector of the Voronoi facets center points. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="ae4a3d65e798c46fd6ce64370f24b0287"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4a3d65e798c46fd6ce64370f24b0287">◆ </a></span>initDelaunay()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::initDelaunay </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> </td>
          <td class="paramname"><em>rect</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Subdiv2D.initDelaunay(</td><td class="paramname">rect</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Creates a new empty Delaunay subdivision. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">rect</td><td>Rectangle that includes all of the 2D points that are to be added to the subdivision. </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<a id="a18a6c9999210d769538297d843c613f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18a6c9999210d769538297d843c613f2">◆ </a></span>insert() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::insert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> </td>
          <td class="paramname"><em>pt</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.Subdiv2D.insert(</td><td class="paramname">pt</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Subdiv2D.insert(</td><td class="paramname">ptvec</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Insert a single point into a Delaunay triangulation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>Point to insert.</td></tr>
  </table>
  </dd>
</dl>
<p>The function inserts a single point into a subdivision and modifies the subdivision topology appropriately. If a point with the same coordinates exists already, no new point is added. </p><dl class="section return"><dt>Returns</dt><dd>the ID of the point.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>If the point is outside of the triangulation specified rect a runtime error is raised. </dd></dl>
</div>
</div>
<a id="a37223a499032ef57364f1372ad0c9c2e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a37223a499032ef57364f1372ad0c9c2e">◆ </a></span>insert() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::insert </td>
          <td>(</td>
          <td class="paramtype">const std::vector&lt; <a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> &gt; &amp; </td>
          <td class="paramname"><em>ptvec</em></td><td>)</td>
          <td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.Subdiv2D.insert(</td><td class="paramname">pt</td><td>)</td></tr><tr><td style="width: 20px;"></td><td>None</td><td>=</td><td>cv.Subdiv2D.insert(</td><td class="paramname">ptvec</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Insert multiple points into a Delaunay triangulation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ptvec</td><td>Points to insert.</td></tr>
  </table>
  </dd>
</dl>
<p>The function inserts a vector of points into a subdivision and modifies the subdivision topology appropriately. </p>
</div>
</div>
<a id="a3330f72eb0ace8a8b6faa43c3f606fdd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3330f72eb0ace8a8b6faa43c3f606fdd">◆ </a></span>isRightOf()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::isRightOf </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> </td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aec8f1fd5a802f62faa97520b465897d7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aec8f1fd5a802f62faa97520b465897d7">◆ </a></span>locate()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::locate </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> </td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp; </td>
          <td class="paramname"><em>edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int &amp; </td>
          <td class="paramname"><em>vertex</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval, edge, vertex</td><td>=</td><td>cv.Subdiv2D.locate(</td><td class="paramname">pt</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns the location of a point within a Delaunay triangulation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">pt</td><td>Point to locate. </td></tr>
    <tr><td class="paramname">edge</td><td>Output edge that the point belongs to or is located to the right of it. </td></tr>
    <tr><td class="paramname">vertex</td><td>Optional output vertex the input point coincides with.</td></tr>
  </table>
  </dd>
</dl>
<p>The function locates the input point within the subdivision and gives one of the triangle edges or vertices.</p>
<dl class="section return"><dt>Returns</dt><dd>an integer which specify one of the following five cases for point location:<ul>
<li>The point falls into some facet. The function returns <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4ae417a0101ccdd133278862bc7e6dcea0" title="Point inside some facet. ">PTLOC_INSIDE</a> and edge will contain one of edges of the facet.</li>
<li>The point falls onto the edge. The function returns <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4adce5c8dff4cd9e6c2e0060dbc9a6f3b6" title="Point on some edge. ">PTLOC_ON_EDGE</a> and edge will contain this edge.</li>
<li>The point coincides with one of the subdivision vertices. The function returns <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4ac78fcef37382840c75b46eb06af11350" title="Point coincides with one of the subdivision vertices. ">PTLOC_VERTEX</a> and vertex will contain a pointer to the vertex.</li>
<li>The point is outside the subdivision reference rectangle. The function returns <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4a79867dca35f0d88ad21969460b533ae1" title="Point outside the subdivision bounding rect. ">PTLOC_OUTSIDE_RECT</a> and no pointers are filled.</li>
<li>One of input arguments is invalid. A runtime error is raised or, if silent or "parent" error processing mode is selected, <a class="el" href="../../df/dbf/classcv_1_1Subdiv2D.html#aa35f844eeaa2817613fe40d436bc59e4a250bb6debdc855cc6bc204454f516d3b" title="Point location error. ">PTLOC_ERROR</a> is returned. </li>
</ul>
</dd></dl>
</div>
</div>
<a id="a2ccf33004b2db5407e238d2077d725be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ccf33004b2db5407e238d2077d725be">◆ </a></span>newEdge()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::newEdge </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ac88046997ef2bf96d72fafa3633bc0ca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac88046997ef2bf96d72fafa3633bc0ca">◆ </a></span>newPoint()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::newPoint </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> </td>
          <td class="paramname"><em>pt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool </td>
          <td class="paramname"><em>isvirtual</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>firstEdge</em> = <code>0</code> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a36ebf478e2546615c2db457106393acb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36ebf478e2546615c2db457106393acb">◆ </a></span>nextEdge()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::nextEdge </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.Subdiv2D.nextEdge(</td><td class="paramname">edge</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns next edge around the edge origin. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">edge</td><td>Subdivision edge ID.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>an integer which is next edge ID around the edge origin: eOnext on the picture above if e is the input edge). </dd></dl>
</div>
</div>
<a id="aa1179507f651b67c22e06517fbc6a145"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa1179507f651b67c22e06517fbc6a145">◆ </a></span>rotateEdge()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::rotateEdge </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>rotate</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.Subdiv2D.rotateEdge(</td><td class="paramname">edge, rotate</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Returns another edge of the same quad-edge. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">edge</td><td>Subdivision edge ID. </td></tr>
    <tr><td class="paramname">rotate</td><td>Parameter specifying which of the edges of the same quad-edge as the input one to return. The following values are possible:<ul>
<li>0 - the input edge ( e on the picture below if e is the input edge)</li>
<li>1 - the rotated edge ( eRot )</li>
<li>2 - the reversed edge (reversed e (in green))</li>
<li>3 - the reversed rotated edge (reversed eRot (in green))</li>
</ul>
</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>one of the edges ID of the same quad-edge as the input edge. </dd></dl>
</div>
</div>
<a id="adc6ca8745fd0d7a28a38c31deb0b1342"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc6ca8745fd0d7a28a38c31deb0b1342">◆ </a></span>setEdgePoints()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::setEdgePoints </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>orgPt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>dstPt</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a2fe50f31cf743a71040ad740b7d1609c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2fe50f31cf743a71040ad740b7d1609c">◆ </a></span>splice()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::splice </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edgeA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edgeB</em> </td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a1e1fb5d4dceadb03ac61c678cf1afb7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1e1fb5d4dceadb03ac61c678cf1afb7f">◆ </a></span>swapEdges()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void cv::Subdiv2D::swapEdges </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aabbb10b8d5b0311b7e22040fc0db56b4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aabbb10b8d5b0311b7e22040fc0db56b4">◆ </a></span>symEdge()</h2>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::symEdge </td>
          <td>(</td>
          <td class="paramtype">int </td>
          <td class="paramname"><em>edge</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.Subdiv2D.symEdge(</td><td class="paramname">edge</td><td>)</td></tr></table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a id="ab3c3970a65dfa0b4e020e101a9fdae7f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3c3970a65dfa0b4e020e101a9fdae7f">◆ </a></span>bottomRight</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> cv::Subdiv2D::bottomRight</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Bottom right corner of the bounding rect. </p>
</div>
</div>
<a id="a961a50c070ec1db71efcadb6a9a95cff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a961a50c070ec1db71efcadb6a9a95cff">◆ </a></span>freePoint</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::freePoint</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a6253d11fc0bcd400221d1735f8c1d283"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6253d11fc0bcd400221d1735f8c1d283">◆ </a></span>freeQEdge</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::freeQEdge</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="ad3f646a7263fc902b6ed9ec15c9b3b51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3f646a7263fc902b6ed9ec15c9b3b51">◆ </a></span>qedges</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="../../d4/dbc/structcv_1_1Subdiv2D_1_1QuadEdge.html">QuadEdge</a>&gt; cv::Subdiv2D::qedges</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>All of the edges. </p>
</div>
</div>
<a id="a80cd8452cf0a0eb8fab9a6875a1bbd0f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a80cd8452cf0a0eb8fab9a6875a1bbd0f">◆ </a></span>recentEdge</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">int cv::Subdiv2D::recentEdge</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a324326659a263ceaa22b1c4f712ef820"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a324326659a263ceaa22b1c4f712ef820">◆ </a></span>topLeft</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="../../dc/d84/group__core__basic.html#ga7d080aa40de011e4410bca63385ffe2a">Point2f</a> cv::Subdiv2D::topLeft</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Top left corner of the bounding rect. </p>
</div>
</div>
<a id="a98184e52f16c9b6ab80102bf29e910ec"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a98184e52f16c9b6ab80102bf29e910ec">◆ </a></span>validGeometry</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool cv::Subdiv2D::validGeometry</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="aebc53cc84655eb0eb8420e26457c6b34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aebc53cc84655eb0eb8420e26457c6b34">◆ </a></span>vtx</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::vector&lt;<a class="el" href="../../d7/de9/structcv_1_1Subdiv2D_1_1Vertex.html">Vertex</a>&gt; cv::Subdiv2D::vtx</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>All of the vertices. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/<a class="el" href="../../d1/d4f/imgproc_2include_2opencv2_2imgproc_8hpp.html">imgproc.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:43 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
